Skip to content

chore(cd): prepare the 10.0.0-rc.1 release - #2599

Merged
decepulis merged 17 commits into
mainfrom
claude/rc-release-readiness-qaqw5t
Sep 8, 2026
Merged

chore(cd): prepare the 10.0.0-rc.1 release#2599
decepulis merged 17 commits into
mainfrom
claude/rc-release-readiness-qaqw5t

Conversation

@decepulis

@decepulis decepulis commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Moves the release train from beta to a release candidate. This PR is the release tooling plus the package READMEs that ship inside the npm tarballs; everything that deploys on merge (site copy, root README, blog post) is in #2658 and waits for rc.1 to be live.

What this does

1. Cuts the next release as 10.0.0-rc.1 instead of 10.0.0-beta.33.
release-please's prerelease strategy only increments the trailing number of the existing prerelease, so switching prerelease-type to rc alone would still produce beta.33. This PR sets a top-level "release-as": "10.0.0-rc.1"; with the linked-versions plugin every package (27, including the new @videojs/cdn and adapter packages) lands on rc.1, and the changelog range stays anchored to the beta.32 tags.

release-as is temporary. It is hard-coded for this one release and #2658 removes it once rc.1 has shipped. While it remains, every release PR proposes rc.1.

The March alpha→beta switch (#846, #850) instead reset the manifest and package versions to beta.0. That works, but because no beta.0 tag existed release-please replayed history into the beta.1 changelog and emitted a broken beta.0...beta.1 compare link, so I avoided repeating it.

prerelease-type is also flipped to rc on every package so the config reads truthfully; it has no effect while a prerelease version is already current.

2. Fixes the npm next dist-tag.
pnpm publish only sets latest, so next has pointed at 10.0.0-alpha.11 for the whole beta channel (and @videojs/cli / @videojs/media have no next at all). New .github/workflows/npm-dist-tag.yml moves a dist-tag onto a published version of every public workspace package, including the nested packages/adapters/* and packages/extensions/* buckets. cd.yml calls it after each release for next, and it is also workflow_dispatch-able.

3. Swaps "Beta" for "Release Candidate" in the 9 package READMEs. These are the READMEs npm shows for each package, so they have to be on main before the release PR merges.

The cd.yml YAML fix and the GitHub App attribution that used to be part of this PR landed separately in #2616 and #2632.

After merging

  1. release-please rewrites the release PR (chore: release main #2617) as chore: release main proposing 10.0.0-rc.1 across all packages. Check that its diff is only version bumps and changelogs before merging it (see fix: resolve stale html lockfile from #2617 #2629 for what a stale regeneration looked like).
  2. Merge the release PR. cd.yml publishes and moves next.
  3. Merge docs: announce the v10 release candidate #2658 promptly. It removes release-as and publishes the announcement. Until it lands, any push to main makes release-please open a release PR proposing rc.1 again; don't merge that one.

Not done here

  • The GitHub repo description still says "[Beta]"; that is a repo setting.

Verification

  • actionlint on cd.yml and npm-dist-tag.yml: clean.
  • Both workflows and the release-please config parse.
  • The dist-tag loop enumerates the same 25 public packages as cd.yml's ./packages/** publish filter.
  • Behavior of release-as + linked-versions confirmed against release-please v17 source (strategies/base.ts buildNewVersion, plugins/linked-versions.ts preconfigure).
  • The Sandbox CI failure is pre-existing on main (same assertion, same value); see the comment below.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj

Move the release train from beta to a release candidate.

release-please's prerelease strategy only increments the trailing number
of the current prerelease, so `prerelease-type` alone would still cut
10.0.0-beta.33. Set `release-as: 10.0.0-rc.1` in the manifest config so
the next release PR proposes rc.1 for every linked package while the
changelog range still starts at the beta.32 tags. The March alpha-to-beta
switch instead reset the manifest and package versions to beta.0, which
made release-please replay history into the beta.1 changelog because no
beta.0 tag existed. Remove `release-as` once rc.1 has shipped, or every
later release PR will propose rc.1 again.

cd.yml has been invalid YAML since #2446: the release checkout guard's
`? 0 : 1` sat in a plain scalar, so no Deployment run on main has reached
release-please since 2026-08-28 and the release PR froze at beta.33. Put
the command in a block scalar.

`pnpm publish` only sets `latest`, so npm's `next` tag still pointed at
10.0.0-alpha.11. Add an npm dist-tag workflow that moves a tag onto a
published version of every public package, run it from cd.yml after each
release for `next`, and expose it through workflow_dispatch so `next` can
be repointed by hand today.

Swap the beta labels in the READMEs, installation guide, browser support
page, and site pill for release candidate wording.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
v10-sandbox Ready Ready Preview Sep 8, 2026 7:56pm UTC

Request Review

@netlify

netlify Bot commented Sep 2, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit 2dbc7ad
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6aa0681158dea20008d694ce
😎 Deploy Preview https://deploy-preview-2599--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@pkg-pr-new

pkg-pr-new Bot commented Sep 2, 2026

Copy link
Copy Markdown
@videojs/cdn

pnpm add https://pkg.pr.new/videojs/v10/@videojs/cdn@2599

@videojs/core

pnpm add https://pkg.pr.new/videojs/v10/@videojs/core@2599

@videojs/element

pnpm add https://pkg.pr.new/videojs/v10/@videojs/element@2599

@videojs/html

pnpm add https://pkg.pr.new/videojs/v10/@videojs/html@2599

@videojs/media

pnpm add https://pkg.pr.new/videojs/v10/@videojs/media@2599

@videojs/react

pnpm add https://pkg.pr.new/videojs/v10/@videojs/react@2599

@videojs/spf

pnpm add https://pkg.pr.new/videojs/v10/@videojs/spf@2599

@videojs/store

pnpm add https://pkg.pr.new/videojs/v10/@videojs/store@2599

@videojs/utils

pnpm add https://pkg.pr.new/videojs/v10/@videojs/utils@2599

@videojs/cloudflare-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/cloudflare-video@2599

@videojs/dash-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/dash-video@2599

@videojs/hlsjs-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/hlsjs-video@2599

@videojs/mux-audio

pnpm add https://pkg.pr.new/videojs/v10/@videojs/mux-audio@2599

@videojs/mux-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/mux-video@2599

@videojs/native-hls-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/native-hls-video@2599

@videojs/shaka-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/shaka-video@2599

@videojs/spotify-audio

pnpm add https://pkg.pr.new/videojs/v10/@videojs/spotify-audio@2599

@videojs/tiktok-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/tiktok-video@2599

@videojs/twitch-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/twitch-video@2599

@videojs/vimeo-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/vimeo-video@2599

@videojs/wistia-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/wistia-video@2599

@videojs/youtube-video

pnpm add https://pkg.pr.new/videojs/v10/@videojs/youtube-video@2599

@videojs/google-cast

pnpm add https://pkg.pr.new/videojs/v10/@videojs/google-cast@2599

@videojs/mux-data

pnpm add https://pkg.pr.new/videojs/v10/@videojs/mux-data@2599

commit: 2dbc7ad

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html — no changes
Presets (7)
Entry Initial Lazy
/video (default) 62.82 kB 56.87 kB
/video (default + hls) 64.55 kB 56.87 kB
/video (minimal) 62.97 kB 56.87 kB
/video (minimal + hls) 64.91 kB 56.87 kB
/audio (default) 46.99 kB 56.87 kB
/audio (minimal) 47.29 kB 56.87 kB
/background 11.57 kB 56.87 kB
Media (18)
Entry Initial
/media/mux-video 3.02 kB
/media/mux-audio 2.69 kB
/media/background-video 1.16 kB
/media/cloudflare-video 2.90 kB
/media/dash-video 2.63 kB
/media/hls-audio 22.05 kB
/media/hls-background-video 16.86 kB
/media/hls-video 28.00 kB
/media/hlsjs-video 2.63 kB
/media/mux-background-video 16.86 kB
/media/native-hls-video 7.57 kB
/media/shaka-video 2.63 kB
/media/spotify-audio 3.02 kB
/media/tiktok-video 3.13 kB
/media/twitch-video 2.93 kB
/media/vimeo-video 2.90 kB
/media/wistia-video 607 B
/media/youtube-video 2.90 kB
Players (5)
Entry Initial Lazy
/video/player 9.69 kB 56.87 kB
/audio/player 6.14 kB 56.87 kB
/background/player 4.46 kB 56.87 kB
/live-video/player 9.06 kB 56.87 kB
/live-audio/player 6.15 kB 56.87 kB
Skins (29)
Entry Type Initial Lazy
/video/minimal-skin.css css 7.68 kB
/video/skin.css css 7.50 kB
/video/minimal-skin js 61.55 kB 56.87 kB
/video/minimal-skin2 js 8.15 kB
/video/skin js 61.31 kB 56.87 kB
/video/skin2 js 8.00 kB
/audio/minimal-skin.css css 5.55 kB
/audio/skin.css css 5.37 kB
/audio/minimal-skin js 45.81 kB 56.87 kB
/audio/minimal-skin2 js 5.88 kB
/audio/skin js 45.54 kB 56.87 kB
/audio/skin2 js 5.69 kB
/background/skin.css css 139 B
/background/skin js 9.81 kB 56.87 kB
/background/skin2 js 187 B
/live-video/minimal-skin.css css 6.23 kB
/live-video/skin.css css 6.20 kB
/live-video/minimal-skin js 49.39 kB 56.87 kB
/live-video/minimal-skin2 js 6.58 kB
/live-video/skin js 49.40 kB 56.87 kB
/live-video/skin2 js 6.61 kB
/live-audio/minimal-skin.css css 4.42 kB
/live-audio/skin.css css 4.39 kB
/live-audio/minimal-skin js 35.47 kB 56.87 kB
/live-audio/minimal-skin2 js 4.68 kB
/live-audio/skin js 35.46 kB 56.87 kB
/live-audio/skin2 js 4.66 kB
/global.css css 190 B
/shared.css css 118 B
UI Components (62)
Entry Initial Lazy
/ui/airplay-button 11.26 kB 56.87 kB
/ui/alert-dialog 8.79 kB 56.87 kB
/ui/audio-track-radio-group 11.38 kB 56.87 kB
/ui/buffering-indicator 8.60 kB 56.87 kB
/ui/captions-button 11.51 kB 56.87 kB
/ui/captions-radio-group 11.45 kB 56.87 kB
/ui/cast-button 11.25 kB 56.87 kB
/ui/container 9.47 kB 56.87 kB
/ui/controls 8.77 kB 56.87 kB
/ui/controls-backdrop 1.69 kB 56.87 kB
/ui/controls-content 1.67 kB 56.87 kB
/ui/dialog 8.73 kB 56.87 kB
/ui/dialog-backdrop 1.70 kB 56.87 kB
/ui/dialog-close 2.06 kB 56.87 kB
/ui/dialog-description 1.69 kB 56.87 kB
/ui/dialog-popup 1.90 kB 56.87 kB
/ui/dialog-title 1.70 kB 56.87 kB
/ui/error-dialog 12.38 kB 56.87 kB
/ui/fullscreen-button 11.26 kB 56.87 kB
/ui/gesture 9.57 kB 56.87 kB
/ui/hotkey 9.97 kB 56.87 kB
/ui/live-button 9.74 kB 56.87 kB
/ui/menu 18.45 kB 56.87 kB
/ui/menu-checkbox-item 1.97 kB 56.87 kB
/ui/menu-content 7.52 kB 56.87 kB
/ui/menu-group 2.09 kB 56.87 kB
/ui/menu-group-label 1.64 kB
/ui/menu-item 2.29 kB 56.87 kB
/ui/menu-item-indicator 1.37 kB 56.87 kB
/ui/menu-radio-group 3.01 kB 56.87 kB
/ui/menu-radio-item 2.13 kB 56.87 kB
/ui/menu-separator 1.30 kB 56.87 kB
/ui/mute-button 11.28 kB 56.87 kB
/ui/pip-button 11.22 kB 56.87 kB
/ui/play-button 11.22 kB 56.87 kB
/ui/playback-rate-button 11.32 kB 56.87 kB
/ui/playback-rate-radio-group 11.38 kB 56.87 kB
/ui/popover 8.57 kB 56.87 kB
/ui/poster 8.67 kB 56.87 kB
/ui/quality-radio-group 11.97 kB 56.87 kB
/ui/seek-button 11.27 kB 56.87 kB
/ui/seek-indicator 12.69 kB 56.87 kB
/ui/seek-indicator-value 1.10 kB
/ui/slider 11.65 kB 56.87 kB
/ui/slider-preview 2.01 kB 56.87 kB
/ui/status-announcer 10.60 kB 56.87 kB
/ui/status-indicator 13.01 kB 56.87 kB
/ui/status-indicator-value 1.10 kB
/ui/thumbnail 9.84 kB 56.87 kB
/ui/time 10.80 kB 56.87 kB
/ui/time-slider 12.99 kB 56.87 kB
/ui/time-slider-chapter-title 8.79 kB 56.87 kB
/ui/time-slider-chapters 9.63 kB 56.87 kB
/ui/title 8.17 kB 56.87 kB
/ui/tooltip 9.95 kB 56.87 kB
/ui/tooltip-label 1.21 kB
/ui/tooltip-shortcut 1.18 kB
/ui/volume-indicator 13.02 kB 56.87 kB
/ui/volume-indicator-fill 1.11 kB
/ui/volume-indicator-value 1.10 kB
/ui/volume-popover 14.74 kB 56.87 kB
/ui/volume-slider 12.31 kB 56.87 kB
⚛️ @videojs/react — no changes
Presets (7)
Entry Initial Lazy
/video (default) 50.61 kB 56.87 kB
/video (default + hls) 50.83 kB 56.87 kB
/video (minimal) 50.66 kB 56.87 kB
/video (minimal + hls) 51.06 kB 56.87 kB
/audio (default) 39.50 kB 56.87 kB
/audio (minimal) 39.56 kB 56.87 kB
/background 581 B 56.87 kB
Media (22)
Entry Initial
/media/mux-video/hls-js 958 B
/media/mux-video/spf 961 B
/media/mux-audio/hls-js 699 B
/media/mux-audio/spf 703 B
/media/background-video 402 B
/media/cloudflare-video 911 B
/media/dash-video 693 B
/media/hls-audio 20.36 kB
/media/hls-background-video 16.40 kB
/media/hls-video 26.35 kB
/media/hlsjs-video 695 B
/media/mux-audio 693 B
/media/mux-background-video 16.47 kB
/media/mux-video 950 B
/media/native-hls-video 5.77 kB
/media/shaka-video 704 B
/media/spotify-audio 901 B
/media/tiktok-video 906 B
/media/twitch-video 929 B
/media/vimeo-video 888 B
/media/wistia-video 619 B
/media/youtube-video 897 B
Extensions (2)
Entry Initial
/extensions/google-cast 1.59 kB
/extensions/mux-data 1.64 kB
Players (5)
Entry Initial Lazy
/video/player 7.56 kB 56.87 kB
/audio/player 4.00 kB 56.87 kB
/background/player 2.27 kB 56.87 kB
/live-video/player 6.95 kB 56.87 kB
/live-audio/player 3.99 kB 56.87 kB
Skins (18)
Entry Type Initial Lazy
/video/minimal-skin.css css 7.53 kB
/video/skin.css css 7.35 kB
/video/minimal-skin js 50.63 kB 56.87 kB
/video/skin js 50.50 kB 56.87 kB
/audio/minimal-skin.css css 5.37 kB
/audio/skin.css css 5.18 kB
/audio/minimal-skin js 39.46 kB 56.87 kB
/audio/skin js 39.40 kB 56.87 kB
/background/skin.css css 90 B
/background/skin js 277 B
/live-video/minimal-skin.css css 6.07 kB
/live-video/skin.css css 6.05 kB
/live-video/minimal-skin js 42.57 kB 56.87 kB
/live-video/skin js 42.52 kB 56.87 kB
/live-audio/minimal-skin.css css 4.24 kB
/live-audio/skin.css css 4.21 kB
/live-audio/minimal-skin js 30.35 kB 56.87 kB
/live-audio/skin js 30.36 kB 56.87 kB
UI Components (39)
Entry Initial Lazy
/ui/airplay-button 10.45 kB 56.87 kB
/ui/alert-dialog 4.73 kB 56.87 kB
/ui/audio-track 7.92 kB 56.87 kB
/ui/audio-track-radio-group 9.48 kB 56.87 kB
/ui/buffering-indicator 7.79 kB 56.87 kB
/ui/captions-button 10.43 kB 56.87 kB
/ui/captions-radio-group 9.59 kB 56.87 kB
/ui/cast-button 10.43 kB 56.87 kB
/ui/controls 7.71 kB 56.87 kB
/ui/dialog 4.75 kB 56.87 kB
/ui/error-dialog 11.80 kB 56.87 kB
/ui/fullscreen-button 10.39 kB 56.87 kB
/ui/gesture 7.98 kB 56.87 kB
/ui/hotkey 8.38 kB 56.87 kB
/ui/live-button 8.80 kB 56.87 kB
/ui/menu 19.45 kB 56.87 kB
/ui/mute-button 10.44 kB 56.87 kB
/ui/pip-button 10.39 kB 56.87 kB
/ui/play-button 10.37 kB 56.87 kB
/ui/playback-rate 7.99 kB 56.87 kB
/ui/playback-rate-button 10.37 kB 56.87 kB
/ui/playback-rate-radio-group 9.53 kB 56.87 kB
/ui/popover 8.16 kB 56.87 kB
/ui/poster 7.57 kB 56.87 kB
/ui/quality 8.42 kB 56.87 kB
/ui/quality-radio-group 9.96 kB 56.87 kB
/ui/seek-button 10.41 kB 56.87 kB
/ui/seek-indicator 11.98 kB 56.87 kB
/ui/slider 12.74 kB 56.87 kB
/ui/status-announcer 10.10 kB 56.87 kB
/ui/status-indicator 12.29 kB 56.87 kB
/ui/thumbnail 8.73 kB 56.87 kB
/ui/time 9.77 kB 56.87 kB
/ui/time-slider 14.17 kB 56.87 kB
/ui/title 7.28 kB 56.87 kB
/ui/tooltip 8.93 kB 56.87 kB
/ui/volume-indicator 12.34 kB 56.87 kB
/ui/volume-popover 14.20 kB 56.87 kB
/ui/volume-slider 12.13 kB 56.87 kB
🧩 @videojs/core — no changes
Entries (76)
Entry Initial Lazy
. 13.15 kB
/dom 22.53 kB 56.87 kB
/vjsc 1.82 kB
/i18n 3.23 kB 56.87 kB
/i18n/locales/all 34.97 kB
/i18n/locales/ar 1.22 kB
/i18n/locales/az 1.09 kB
/i18n/locales/bg 1.29 kB
/i18n/locales/bn 1.23 kB
/i18n/locales/bs 1.00 kB
/i18n/locales/ca 1.07 kB
/i18n/locales/cs 1.07 kB
/i18n/locales/cy 1.02 kB
/i18n/locales/da 1006 B
/i18n/locales/de 1.09 kB
/i18n/locales/el 1.49 kB
/i18n/locales/en 785 B
/i18n/locales/es 1018 B
/i18n/locales/et 1.05 kB
/i18n/locales/eu 1.03 kB
/i18n/locales/fa 1.22 kB
/i18n/locales/fi 1.04 kB
/i18n/locales/fr 1.07 kB
/i18n/locales/gd 1.10 kB
/i18n/locales/gl 1022 B
/i18n/locales/he 1.14 kB
/i18n/locales/hi 1.30 kB
/i18n/locales/hr 1.02 kB
/i18n/locales/hu 1.10 kB
/i18n/locales/id 919 B
/i18n/locales/it 1.01 kB
/i18n/locales/ja 1.18 kB
/i18n/locales/ko 1.14 kB
/i18n/locales/lt 1.02 kB
/i18n/locales/lv 1.09 kB
/i18n/locales/mr 1.30 kB
/i18n/locales/nb 987 B
/i18n/locales/ne 1.29 kB
/i18n/locales/nl 1.00 kB
/i18n/locales/nn 987 B
/i18n/locales/oc 1.08 kB
/i18n/locales/pl 1.14 kB
/i18n/locales/pt 1.03 kB
/i18n/locales/pt-BR 1.03 kB
/i18n/locales/pt-PT 1.01 kB
/i18n/locales/ro 1.07 kB
/i18n/locales/ru 1.40 kB
/i18n/locales/sk 1.10 kB
/i18n/locales/sl 1.04 kB
/i18n/locales/sr 1.07 kB
/i18n/locales/sv 1.01 kB
/i18n/locales/te 1.32 kB
/i18n/locales/th 1.29 kB
/i18n/locales/tr 1.08 kB
/i18n/locales/uk 1.41 kB
/i18n/locales/vi 1.11 kB
/i18n/locales/zh 1.02 kB
/i18n/locales/zh-CN 1.02 kB
/i18n/locales/zh-TW 1.02 kB
/i18n/text/airplay 101 B
/i18n/text/buttons 137 B
/i18n/text/captions 93 B
/i18n/text/cast 114 B
/i18n/text/common 90 B
/i18n/text/container 75 B
/i18n/text/errors 285 B
/i18n/text/fullscreen 98 B
/i18n/text/live 126 B
/i18n/text/menu 249 B
/i18n/text/pip 101 B
/i18n/text/playback 80 B
/i18n/text/seek 105 B
/i18n/text/slider 65 B
/i18n/text/status 222 B
/i18n/text/time 280 B
/i18n/text/volume 133 B
🏷️ @videojs/element — no changes
Entries (2)
Entry Initial
. 1.05 kB
/context 943 B
📦 @videojs/store — no changes
Entries (3)
Entry Initial
. 1.72 kB
/html 703 B
/react 365 B
🔧 @videojs/utils — no changes
Entries (13)
Entry Initial
/array 271 B
/dom 5.02 kB
/events 320 B
/function 386 B
/i18n 249 B
/jwt 176 B
/object 535 B
/predicate 297 B
/percent 281 B
/string 239 B
/style 212 B
/time 976 B
/number 199 B
📦 @videojs/cdn — no changes
📦 @videojs/cloudflare-video — no changes
📦 @videojs/dash-video — no changes
📦 @videojs/google-cast — no changes
📦 @videojs/hlsjs-video — no changes
📦 @videojs/media — no changes
Entries (3)
Entry Initial
. 1.14 kB
/dom 4.12 kB
/media-tracks 2.05 kB
📦 @videojs/mux — no changes
📦 @videojs/mux-audio — no changes
Entries (2)
Entry Initial
. 135.58 kB
/spf 20.84 kB
📦 @videojs/mux-data — no changes
📦 @videojs/mux-video — no changes
Entries (2)
Entry Initial
. 135.56 kB
/spf 26.75 kB
📦 @videojs/native-hls-video — no changes
📦 @videojs/shaka-video — no changes
📦 @videojs/spf — no changes
Entries (7)
Entry Initial
. 4.55 kB
/dom 6.60 kB
/hls 22.06 kB
/media-tracks 504 B
/hls-background-video 15.84 kB
/hls-audio 19.84 kB
/hls-video 25.89 kB
📦 @videojs/spotify-audio — no changes
📦 @videojs/tiktok-video — no changes
📦 @videojs/twitch-video — no changes
📦 @videojs/vimeo-video — no changes
📦 @videojs/wistia-video — no changes
Entries (2)
Entry Initial
. 1.91 kB
/helpers 1.77 kB
📦 @videojs/youtube-video — no changes

ℹ️ How to interpret

Each entry is independently bundled, minified, and brotli-compressed. Initial size includes its static import graph; lazy dynamic chunks are reported separately.

Entries are not additive because their dependency graphs overlap. Preset rows represent realistic combined bundles.

Changes of 300 B or less across initial, lazy, and total size are collapsed, not discarded.

Run pnpm size locally to check current initial sizes.

Add a September 2026 release candidate milestone to the homepage roadmap,
README timeline, and roadmap doc, and move the GA target to fall 2026.

Let cd.yml mint a GitHub App installation token for release-please when
the RELEASE_APP_ID variable is set, so release PRs and tags are attributed
to the app's bot user instead of a maintainer's personal token. The
personal token remains the fallback until the app is configured.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Comment thread packages/cli/README.md Outdated
Comment thread packages/spf/README.md Outdated
Comment thread site/src/content/docs/concepts/browser-support.mdx
Comment thread site/src/content/docs/how-to/installation.mdx Outdated
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Match the cli and spf README banners to the other packages, drop the
browser-support aside, and point the installation aside at the release
candidate announcement.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
The 88% figure came from the beta comparison. Measured the same way
today, the default HTML player is 62.8% smaller than the Video.js 8
default bundle (gzip), so the post now says over 60%.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
The GitHub App token step for release-please now lands separately in
#2616 so it can merge and be tested ahead of the release candidate.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Resolve the release-please config against the new package list, keeping
every package on the rc prerelease type, and keep the block scalar for the
release checkout verification that main lost again in #2598.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj

Copy link
Copy Markdown
Collaborator Author

The failing publish check (Preview Releases / pkg-pr-new) is not this PR's. It fails identically on main for #2586 and #2600: apps/sandbox/scripts/prepare-template.ts rewrites apps/sandbox/package.json (drops @videojs/icons, pins vite-plus to 0.2.8) and pkg-pr-new's frozen pnpm install then rejects the lockfile mismatch. This branch only inherits that through the merge from main; nothing here touches the sandbox or the template script. No fix for it exists on main yet, so I'm not porting one.


Generated by Claude Code

@decepulis
decepulis marked this pull request as ready for review September 8, 2026 19:03
@netlify

netlify Bot commented Sep 8, 2026

Copy link
Copy Markdown

Deploy Preview for vjs-registry canceled.

Name Link
🔨 Latest commit 2dbc7ad
🔍 Latest deploy log https://app.netlify.com/projects/vjs-registry/deploys/6aa06811a3f2100007e3a121

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4a86ef7. Configure here.

Comment thread .github/workflows/npm-dist-tag.yml
The dist-tag loop only globbed packages/*/package.json, so the public
packages under packages/adapters/ and packages/extensions/ never
received the tag. Match the publish filter in cd.yml.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
The package READMEs stay here because they ship inside the npm
tarballs. Everything that deploys on merge waits for rc.1 to be live.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZ5RTqfnRMiiASH1T7tWVj
"tag-separator": "@",
"include-component-in-tag": true,
"include-v-in-tag": false,
"release-as": "10.0.0-rc.1",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this shouldn't be needed unless you want to pin it to a specific version. if we keep this we'll need to update it each release I believe

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah. I meant to put this in the PR body. I'm going to hard-code it for this release and take it out afterwards.

Copy link
Copy Markdown
Collaborator Author

CI note: the Sandbox failure on 2dbc7ad is not this PR's.

suites/sandbox/tests/sandbox-skin-styling.spec.ts:93 ("react minimal … scales thumbnails in fullscreen", tailwind-from-registry and css-from-package variants) fails the aspect-ratio assertion at line 162 with Received: 0.786 against a < 0.02 tolerance. The same job on main's tip 2c84bbaf fails on the same assertion with the same value. This PR touches no skin, thumbnail, or sandbox code (release-please config, two workflows, package READMEs).

No targeted fix is open yet. #2633 reworks the React thumbnail parts but is a feature change, not a fix for this assertion, so I have not ported it here. Everything else on this head is green.


Generated by Claude Code

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

E2E triage: real regression (inherited from main, not introduced by this PR). React minimal fullscreen thumbnail sizing violates the aspect-ratio invariant; see #2659 for logs, report/trace findings, and debugging pointers.

Comment thread .github/workflows/cd.yml
Comment on lines +21 to +23
outputs:
released: ${{ steps.release.outputs.releases_created }}
version: ${{ steps.release.outputs['packages/html--version'] }}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed? we already have access to those outputs without these lines

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Within the release job, yes: steps.release.outputs.* is available to every later step, and the existing steps use it that way. The new dist-tag job at the bottom of the file is a separate job, because it uses: the reusable npm-dist-tag.yml workflow and a reusable workflow can only be called at the job level, not as a step. Cross-job, the only way to read a step's output is needs.release.outputs.*, and that requires the producing job to declare outputs:. That is all these three lines do.


Generated by Claude Code

@decepulis decepulis Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol sorry Wes. My Claude is eager to respond.

To add additional context: we have a new dist-tag job to catch @next up to our leading edge and keep it there (it's been pointing at alpha this whole time)

@decepulis
decepulis merged commit 1df6504 into main Sep 8, 2026
68 of 69 checks passed
@decepulis
decepulis deleted the claude/rc-release-readiness-qaqw5t branch September 8, 2026 20:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants